package haggisworld;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

/**
 *
 * @author Büsra Göcen
 */
public class HilfeFrame extends JFrame {

    private static HilfeFrame instance;

    /**
     * Diese Methode bewirkt, dass pro Client 1 HilfeFrame geöffnet werden soll.
     */
    public static void zeigeHilfe() {
        System.out.println("öffne Hilfe");
        if (HilfeFrame.instance == null) {
            HilfeFrame.instance = new HilfeFrame();
        }

        HilfeFrame.instance.setVisible(true);
    }

    /**
     * Konstruktor von HilfeFrame
     */
    private HilfeFrame() {

        this.initComponents();
        setTitle("Spielanleitung");
        setSize(520, 300);
        setLocationRelativeTo(null);
    }

    /**
     * Initialisiert HilfeFrame
     */
    private void initComponents() {
        JPanel anleitungPanel = new JPanel(new BorderLayout());
        JScrollPane anleitungScroll = new JScrollPane(anleitungPanel);
        this.add(anleitungScroll);
        JTextArea spielanleitung = new JTextArea("1.1 Ziel des Spiels\n"
                + "Das Ziel jedes Spielers ist es, als erster seine Karten loszuwerden und dabei gleichzeitig bestimmte Punktekarten zu fangen. Der Spieler, welcher als erster 250 Punkte erreicht, gewinnt.\n" + "\n"
                + "1.2 Spielmaterial\n"
                + "Ein Haggis – Deck besteht aus 54 Spielkarten: Es gibt fünf Farben (bei 3 Spielern/ bei 2 Spielern sind es vier Farben) zu je 9 Karten mit den Werten von 2 – 10; ausserdem – ohne Farbzuordnung – insgesamt drei Buben, drei Damen, drei Könige.\n" + "\n"
                + "1.3 Spielablauf\n"
                + "Vor jedem Spieler werden ein Bube, eine Dame und ein König offen ausgelegt. Diese Karten sind Jokerkarten. Die restlichen Karten werden gemischt. Jeder Spieler erhält verdeckt 14 Karten. Die Kartenhand eines Spielers besteht aus diesen 14 Karten \n sowie den drei Jokerkarten, die offen vor ihm liegen, bis sie ausgespielt werden. Der Rest (8 Karten) bildet den Haggis, der unbesehen zur Seite gelegt wird.\n"
                + "In jeder Runde wird eine Reihe von Stichen gespielt. In der ersten Runde spielt der Spieler links vom Geber aus, indem er eine Kartenkombination auf den Tisch legt. Das kann ein Set oder eine Strasse sein.\n"
                + "Nachdem eine Kartenkombination ausgespielt wurde, geht das Spiel im Uhrzeigersinn weiter, wobei jeder Spieler eine höherwertige Kombination ausspielen oder passen darf. Wer eine höherwertige Kombination besitzt, darf passen; wer keine besitzt, muss passen.\n"
                + "Um höherwertig zu sein, muss eine Kartenkombination vom gleichen Typ (Set oder Strasse) sein, aus der gleichen Anzahl von Karten bestehen und höherwertige Karten enthalten.\n"
                + "Es wird solange weitergespielt, bis alle anderen Spieler auf eine Kartenkombination gepasst haben. Ein beendeter Stich wird von dem Spieler gewonnen, der die höchste Kombination gespielt hat.\n"
                + "Der Gewinner des Stichs bekommt alle Karten, aus denen der Stich besteht. Der Gewinner spielt dann den nächsten Stich aus.\n"
                + "Die Runde endet wenn nur noch ein Spieler Karten in der Hand hat. Alle Handkarten des letzten Spielers sowie der Haggis gehen an den Spieler, der zuerst keine Karten mehr hatte.\n" + "\n"
                + "1.3.1 Jokerkarten\n"
                + "B, D und K können als Jokerkarten für beliebige niedrigere Karten eingesetzt werden (ein Bube kann beispielsweise als 8, aber nicht als König verwendet werden).\n"
                + "Wenn eine Jokerkarte als Teil einer Strasse ausgespielt wird, kann sie jede beliebige Farbe „annehmen.\n"
                + "Zu beachten ist, dass Bube, Dame und König gespielt werden müssen; sie können auch als Einzelkarten, in einem Set oder in einer Strasse gespielt werden. \n"
                + "Wenn Jokerkarten als Teil einer grösseren Kombination (Set oder Strasse) gespielt werden, muss diese Kombination noch mindestens eine normale Karte enthalten.\n" + "\n"
                + "1.3.2 Sets\n"
                + "Ein Set ist eine Anzahl von Karten desselben Wertes (Einzelkarten, Paare, Drillinge etc.). Ein Set darf eine beliebige Anzahl von Jokerkarten enthalten. Somit kann ein Set aus 1 bis 8 Karten bestehen.\n" + "\n"
                + "1.3.3 Strassen\n"
                + "Eine Strasse ist eine Gruppe von drei oder mehr Einzelkarten oder zwei oder mehr grösseren Sets (Paaren, Drillingen, etc.) aufeinander folgenden Wertes. Hierbei müssen die einzelnen Sets dieselben Farben haben.\n" + "\n"
                + "1.3.4 Wertung\n"
                + "Ein Spieler, der seine letzte Karte spielt, bekommt fünf Punkte für jede Handkarte des Gegners, der zu diesem Zeitpunkt die meisten Karten auf der Hand hat (einschliesslich der Jokerkarten). \n Alle Punktekarten (also 3, 5, 7, 9, B, D und K), die während des Spiels gewonnen wurden, zählen ihren Punktewert für den Spieler, der sie gewonnen hat. Diese Punkte werden dann Runde für Runde addiert bis jemand 250 oder mehr Punkte hat.");
        anleitungPanel.add(spielanleitung);
        spielanleitung.setLineWrap(true);
        spielanleitung.setWrapStyleWord(true);
        spielanleitung.setEditable(false);
        spielanleitung.setFont(new Font("Verdana", Font.PLAIN, 10));
        spielanleitung.setBackground(Color.green);
        this.setVisible(true);
        this.pack();
    }
}
